home *** CD-ROM | disk | FTP | other *** search
- /*
- readconvtab.c
- Beispiel, wie die ACT-Dateien von TextConv ausgelesen werden
- Letzte Änderung:27.09.1997
-
- Achtung: Diese Datei ist nur ein Codefragment, welches als Beispiel
- und Vorlage diesen soll.
- Diese Datei kann nicht direkt compiliert werden!
- */
-
-
- /*
- Rückgabewerte:
-
- 0 - OK
- 1 - Datei konnte nicht geöffnet werden
- 2 - Datei ist keine ACT-Datei
- 3 - Falsche Dateiversion
- 4 - Falsche Tabellenkennung (zB bei IBM2ANSI - Kennung IBM2MAC)
- 5 - Sonstiger Fehler
- */
-
- FILE *tabfile; /* Zeiger auf die zu ladende Tabellendatei */
- UBYTE header[20]; /* Buffer zum Laden des Headers */
- UBYTE error; /* Rückgabewert für Warnungen (3 und 4) */
- int i; /* Allg. Zähler */
-
-
- /* Beispiel: ANSI2IBM */
-
- error=0;
-
- if(!(tabfile=fopen("PROGDIR:convtables/ansi2ibm.act","rb"))) /* Öffne Datei */
- {
- return(1);
- }
-
- fread(header, sizeof(UBYTE), 20, tabfile); /* Lese Header */
-
-
- /* MagicBytes Kennung prüfen */
-
- if((header[0]=='S')&&(header[1]=='C')&&(header[2]=='T')&&(header[3]=='A')&&(header[4]=='C')&&(header[5]=='T'))
- {
- /* MagicByte Kennung erfolgreich - Beta: Ausgabe */
- }
- else
- {
- /* MagicByte Kennung fehlgeschlagen - Beendigung und Fehlerrückgabe */
- return(2);
- }
-
-
- /* Dateiversion prüfen */
-
- if((header[6]==1)&&(header[7]==0))
- {
- /* Versionsprüfung (Version 1.0) erfolgreich - Beta: Ausgabe */
- }
- else
- {
- /* Versionsprüfung fehlgeschlagen - error für Ruckgabe setzen */
- error=3;
- }
-
-
- /* Tabellenkennung prüfen */
-
- if((header[8]==' ')&&(header[9]=='A')&&(header[10]=='N')&&(header[11]=='S')&&
- (header[12]=='I')&&(header[13]=='2')&&(header[14]=='I')&&(header[15]=='B')&&
- (header[16]=='M')&&(header[17]==' ')&&(header[18]==' ')&&(header[19]==' '))
- {
- /* Tabellenkennungsprüfung erfolgreich - Beta: Ausgabe */
- /* printf("Tabellenkennungsprüfung erfolgreich \n");*/
- }
- else
- {
- /* Tabellenkennungsprüfung fehlgeschlagen - error für Ruckgabe setzen */
- error=4;
- }
-
-
-
- /* Prüfungen abgeschlossen - lade Tabelle und Ende */
- fread(convTab, sizeof(UBYTE), 256, tabfile); /* Lese Tabelle */
- fclose(tabfile);
- return(error);
-
-